home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 52
/
Amiga Format AFCD52 (Issue 136, May 2000).iso
/
-in_the_mag-
/
banging_the_metal
/
qdos
/
qdos4amiga3.lha
/
PLAY_MUSIC_bas
< prev
next >
Wrap
Text File
|
1998-02-12
|
3KB
|
63 lines
100 REMark MUSIC PLAYER - v1.03
110 REMark Mark J Swift - 26 Feb 94
120 REMark Simple graphics added SNG
130 :
140 REMark BEEP <pitch> gives frequency
150 REMark approx to 11447/(10.6+<pitch>)
160 :
170 PLAY_MUSIC(6E-2)
180 STOP
190 :
9000 REMark This program is FREEWARE, do
9010 REMark with it as you will.
9020 REMark To remove graphics, delete the
9030 REMark lines marked: "-gfx-".
9040 :
9050 DEFine PROCedure PLAY_MUSIC(tempo)
9060 LOCal Note$(3),dur,pitch,getdata,loop,poll
9070 OPEN#3;"Con_272x134a120x60":WINDOW#3;272,134,120,60:PAPER#3;0:INK#3;7:CLS#3:BORDER#3;3,2:BORDER#3;2,0:BORDER#3;1,2:WINDOW#3;256,120,128,68:CSIZE#3;3,1:PRINT#3;"PLAY_MUSIC v1.03":CSIZE#3;2,0:AT#3;11,0:INK#3;4:PRINT#3;"Press <ENTER> to quit";:WINDOW#3;256,86,128,90:PAPER#3;2:CLS#3:REMark -gfx-
9080 REPeat loop
9090 RESTORE 9300
9100 REPeat getdata
9110 READ Note$,dur
9120 IF Note$=="QIT" THEN EXIT loop
9130 IF Note$=="LUP" THEN EXIT getdata
9140 IF (KEYROW(1)&&1) THEN EXIT loop
9150 pitch=INT(11447/((55*2^(Note$(3)-1))*(EXP(LN(2)*((Note$(1 TO 2)INSTR"C C#D D#E F F#G G#A A#B "-19)/2)/12)))-10.6+.5)
9160 REPeat poll : IF NOT BEEPING THEN EXIT poll
9170 BEEP dur*tempo*1000000/72,pitch
9180 SCROLL#3;dur+1:BLOCK#3;8,dur,pitch-9,0,7:REMark -gfx-
9190 END REPeat getdata
9200 END REPeat loop
9210 CLOSE#3: REMark -gfx-
9220 END DEFine
9230 :
9240 REMark Store music in DATA statements
9250 REMark ie DATA note,dur,note,dur,etc.
9260 REMark Lowest note F 1, highest B 4.
9270 REMark Use # symbol for sharp notes,
9280 REMark i.e. "F#1", "A#2" etc.
9290 :
9300 DATA "G 3",2,"A 3",2
9310 DATA "B 3",4,"B 3",4,"B 3",4,"B 3",4
9320 DATA "A 3",4,"B 3",4,"G 3",4,"G 2",2,"A 2",2
9330 DATA "B 2",4,"B 2",4,"B 2",4,"A 2",2,"G 2",2
9340 DATA "B 2",4,"B 2",4,"B 2",4,"G 3",2,"A 3",2
9350 DATA "B 3",4,"B 3",4,"B 3",4,"B 3",4
9360 DATA "A 3",4,"B 3",4,"G 3",4,"G 2",2,"A 2",2
9370 DATA "B 2",4,"B 2",4,"B 2",4,"A 2",2,"G 2",2
9380 DATA "B 2",12,"B 3",4
9390 DATA "B 3",6,"C 4",2,"D 4",4,"B 3",4
9400 DATA "E 4",4,"E 4",4,"D 4",4,"B 3",4
9410 DATA "B 3",6,"C 4",2,"D 4",4,"B 3",4
9420 DATA "A 3",4,"G 3",4,"F#3",4,"G 3",2,"A 3",2
9430 DATA "B 3",4,"B 3",4,"B 3",4,"B 3",4
9440 DATA "A 3",4,"B 3",4,"D 3",4,"G 3",2,"A 3",2
9450 DATA "B 3",4,"B 3",4,"B 3",4,"A 3",2,"G 3",2
9460 DATA "A 3",2,"G 3",2,"A 3",2,"B 3",2,"C 4",4,"G 3",2,"A 3",2
9470 DATA "B 3",4,"B 3",4,"B 3",4,"A 3",2,"G 3",2
9480 DATA "A#3",8,"G 3",4,"A 3",2,"G 3",2
9490 DATA "B 3",4,"B 3",4,"B 3",4,"A 3",2,"F#3",2
9500 DATA "G 3",12
9510 DATA "LUP",0